# Configurator

**Jitsu Configurator** is a service that's provide a UI and API for configuring Jitsu. Configurator is an optional, but highly recommended
services (read more about `@jitsucom/server` and `@jitsucom/configurator` relations on a [docker deployment page](/docs/deployment/deploy-with-docker))

If **Jitsu Configurator** is deployed in a standalone mode (not a part of [joint image](/docs/deployment/deploy-with-docker/joint-image)), it should be configured via single YAML file
or with [env variables](/docs/deployment/deploy-with-docker/jitsu-configurator) if you're deploying it with Docker

The file consists of the following sections:

* `server` — General configuration parameters such as port, application logs configuration, CORS, etc.
* `jitsu` — Jitsu Server address configuration. Configurator UI proxies some requests from UI to Jitsu Server via Configurator e.g. getting Live events and Statistics data or Destinations Test requests.
* `auth` — UI Authorization storage configuration. Storage for storing UI authorization flow data.
* `storage` — Main Storage. Configurator UI stores all users configuration such as configured destinations, api keys, sources into the storage.
* `notifications` — notifier configuration. Configurator starts, system errors, and panics information will be sent to it. Currently, only Slack notifications are supported.
* `smtp` – email sender configuration. If not specified, email sender will be disabled. The config may also be passed as JSON via `JITSU_SMTP_CONFIG` environment variable and follows the same layout as YAML configuration (`{"host": "...", "port": 456, ...}`).
* `sso` – SSO authentication configuration. Supported providers: [Auth0](/docs/configurator-configuration/auth0-sso) and [BoxyHQ](/docs/configurator-configuration/boxy-hq-sso) The config may also be passed as JSON via `JITSU_SSO_CONFIG` environment variable and follows the same layout as YAML configuration (`{"provider": "...", "auto_provision": { ... }}`).

**Example**:

```yaml
server:
  name: instance1.domain.com
  port: 7000
  allowed_domains:
  #CORS configuration
  #{{APP_TLD} is a macros for Application Top Level Domain
    - '{{APP_TLD}}'
    - 'localhost'
  auth: 'demo___please_provide_value_in_production___'

ui:
  #Public URL of the Configurator UI
  base_url: 'https://jitsu.example.com'
  
jitsu:
  base_url: 'http://your_jitsu_server_url'
  #token from Jitsu Server server.admin_token section of yaml configuration
  admin_token: 'demo___please_provide_value_in_production___'

notifications:
  slack:
    url: https://slack_web_hook_url

storage:
  redis:
    host: redis_host
    port: 6379
    password: secret_password

auth:
  redis:
    host: redis_host
    port: 6379
    password: secret_password
    #JWT secrets
    access_secret: 'demo___please_provide_value_in_production___'
    refresh_secret: 'demo___please_provide_value_in_production___'

smtp:
  host: 'your_smtp_host'
  port: 465
  user: 'your_smtp_username'
  password: 'your_smtp_password' # optional
  from: support@jitsu.com # optional, used for From header
  signature: Your Jitsu - an open-source data collection platform team # optional
  reply_to: support@jitsu.com # optional, used for Reply-To header

sso:
  provider: 'auth0' # SSO provider. Supported: auth0, boxy
  auto_provision:
    enable: true # enable auto provisioning - automatically create user if not exists
    auto_onboarding: true # skip onboarding for auto provisioned users
  auth0:
    ... # provider specific settings
  access_token_ttl_seconds: 86400 # ttl of obtained access token in seconds. Default: 86400 (1 day)
```

<Hint>
    You can set {'${env.OS_ENV_VAR_NAME}'} to any configuration parameter in YAML file. Jitsu will get the value from OS ENV (with name OS_ENV_VAR_NAME from the example).
</Hint>